ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ 3
ГЛАВА 1.ОПЕРАТОРЫ ЦИКЛОВ…4
1.1. Оператор с предусловием While 4
1.2. Оператор с постусловием Repeat 9
1.3. Оператор со счетчиком For 10
ГЛАВА 2.МАССИВЫ 20
2.1. Одномерные массивы 21
2.2. Двумерные массивы 22
ЗАКЛЮЧЕНИЕ 27
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 28

Работа № 4179. Это ОЗНАКОМИТЕЛЬНАЯ ВЕРСИЯ работы, цена оригинала 1000 рублей. Оформлен в программе Microsoft Word.

Оплата. Контакты

ВВЕДЕНИЕ
Паскаль был изобретен Никлаусом Виртом в 1970 году назло расхожему воззрению он никак не был только учебным языком а предназначался для практичного внедрения. Макетом явился Алгол.
Чертами языка считаются требовательная стандартизация и присутствие средств структурного (процедурного) программирования. Паскаль был одним из первых таковых языков. По суждению Н. Вирта язык обязан был содействовать дисциплинированию программирования потому наравне со серьезной типизацией в Паскаль сведены к минимальному количеству вероятные синтаксические неоднозначности а сам синтаксис подсознательно понятен в том числе и при главном знакомстве с языком. Наверное упрощает начертание компиляторов языка.
Не считая такого язык предоставлял разряд интегрированных структур данных: записи массивы файлы множества и указатели.
Задача курсовой работы: более детальное и подробное изучение основ программирования по темам «Циклы» и «Массивы» на языке Паскаль.
Цель: составить справочно — информативный конспект содержащий методические разработки решения задач по данным темам.
Содержание курсовой работы включает в себя введение 2 главы 23 решённых примера заключение и список используемой литературы.

ГЛАВА 1. ОПЕРАТОРЫ ЦИКЛОВ

Операторы повторения (циклов) обычно используют для многократного повторения некоторых действий.
Pascal поддерживает три управляющих конструкции повторения:
 цикл с предусловием (While)
 цикл с постусловием (Repeat)
 цикл со счетчиком (For).

1.1. Оператор с предусловием While

Цикл While используется как правило в тех случаях когда заранее неизвестно количество повторений цикла.
Синтаксис оператора While:
While выражение Do оператор
Выражение должно быть булевского типа данных. Значение выражения вычисляется перед каждым выполнением оператора поэтому цикл While называют еще циклом с предусловием. Оператор составляющий тело цикла выполняется пока выражение равно true. Если значение выражения false то оператор не выполняется и происходит выход из цикла.
Если первоначальное значение выражения равно false то оператор не выполнится ни разу. Чтобы избежать бесконечного повторения (зацикливания) необходимо хотя бы одну переменную входящую в выражение изменять в теле оператора цикла. Более того эти изменения должны быть такими чтобы булевское выражение в ходе вычисления приняло значение false. Если же булевское выражение первоначально истинно и ни при каких обстоятельствах не становится ложным то выполнение оператора цикла никогда не завершится.
Пример 1. Дано натуральное число:
 найти количество цифр данного числа
 верно ли что данное число заканчивается на нечетную цифру.
program kol
var ak: longint
begin
k:=0
writeln (‘Введите натуральное число’)
readln (a)
write (‘Данное число заканчивается на нечётную цифру — утверждение ‘)
if a mod 2=1 then writeln (‘верное.’) else writeln (‘неверное.’)
while a>0 do begin
k:=k+1 a:=a div 10
end
writeln (‘Количество цифр введённого вами числа — ‘k)
readln
end.
Демонстрация решения:
Пример 2.Дано натуральное число:
Найти количество цифр данного числа больших A (A вводится с клавиатуры)
Верно ли что данное число принадлежит промежутку от A до B и делится на 345 (A и B вводятся с клавиатуры).
program hr
var abxhk: longint
begin
k:=0
writeln (‘Введите натуральное число’) readln (x)
writeln (‘Введите A и B’) readln (ab)
write (‘»Данное число принадлежит промежутку от ‘a’ до ‘b’ и кратно 3 4 и 5″ — утверждение ‘)
if (x>a) and (x<b) then write (‘Данное число принадлежит промежутку от ‘a’ до ‘b) else write (‘Данное число не принадлежит промежутку от ‘a’ до ‘b)
if (x mod 3=0) and (x mod 4=0) and (x mod 5=0) then writeln (‘Данное число кратно 3 4 и 5’) else writeln (‘Данное число не кратно 3 4 и 5’)
while x>0 do begin
h:=x mod 10
if h>a then k:=k+1
x:=x div 10
end
writeln (‘Количество цифр данного числа больших ‘a’ равно — ‘k)
readln
end.
Демонстрация решения:
Пример 3. Найти самую большую цифру числа.
program big
var kcp: longint
begin
p:=0
writeln (‘Введите целое число’)
readln (c)
while c>0 do begin
k:= c mod 10
if k>p then p:=k
c:=c div 10
end
writeln (‘Самая большая цифра введённого вами числа это ‘p)
readln
end.
Демонстрация решения:
Пример 4.Найдите сумму цифр числа
program xxx
var acs: longint
begin
writeln (‘Введите число’)
readln (a)
s:=0
while a>0 do begin
c:= a mod 10
s:=s+c
a:=a div 10
end
writeln (‘Сумма цифр введённого вами числа равна ‘s)
readln
end.
Демонстрация решения:
Пример 5. Дано натуральное число. Найти сумму чисел этого числа верно ли что число начинается и заканчивается одной и той же цифрой.
program xxx
var acis: longint
begin
writeln (‘Введите число’)
readln (a)
i:= a mod 10s:=0
while a>0 do begin
c:= a mod 10
s:=s+c a:=a div 10end
writeln (‘Сумма цифр введённого вами числа равна ‘s)
write (‘Данное число начинается и заканчивается одной и той же цифрой- ‘)
if c=i then write (‘верно.’) else write (‘неверно.’)
readln
end.
Демонстрация решения:
Пример 6. Дано натуральное число. Сколько раз данная цифра А встречается в данном числе ( А вводить с клавиатуры ). Верно ли что само число делится на В (В вводить с клавиатуры).
program xxx
var chaxskbc: longint
begin
writeln (‘Введите число’) readln (x)
writeln (‘Введите A и B’) readln (ab)
s:=0 k:=0 ch:=x
while x>0 do begin
c:=x mod 10 s:=s+c
if c=a then inc (k) x:=x div 10
end
writeln (‘Цифра ‘a’ встречается в данном числе ‘k’ раз(а).’)
write (‘Само число делится на’b'»-‘)
if (ch mod b=0) then write (‘верно.’) else write (‘неверно.’)
readln
end.
Демонстрация решения:
1.2. Оператор с постусловием Repeat
Цикл Repeat как правило используется в тех случаях когда заранее неизвестно количество повторений операторов тела цикла но необходимо выполнить тело цикла хотя бы один раз.
Синтаксис оператора цикла Repeat:
Repeat оператор
Until выражение
В цикле Repeat вначале выполняется оператор (или операторы) тела цикла затем вычисляется значение выражения если его значение равно false то вновь выполняется оператор если значение выражения true то цикл заканчивается. Если значение выражения равно true с самого начала то оператор выполняется лишь один раз. Если выражение никогда не принимает значение true то оператор выполняется бесконечное число раз т.е. происходит «зацикливание».
Нижняя граница операторов циклической части обозначена словом Until поэтому нет необходимости заключать операторы циклической части в операторные скобки begin … end.
Пример 7: Вычисление суммы ряда состоящего из 50 элементов.
S:=0 N:=1
Repeat
S:=S+1/N N:=N+1
Until N>50 { пока значение N не превзойдет 50 }
1.3. Оператор со счетчиком For
Оператор цикла For служит для организации цикла в тех случаях когда заранее известно сколько раз должна повторяться циклическая часть программы обычно цикл For используют при работе с массивами. Синтаксис оператора For по возрастающим значениям параметра:
For счетчик:=значение_1 To значение_2 Do оператор
Счетчик – переменная порядкового типа.
Значение_1 значение_2 – начальное и конечное значения переменной счетчик.
Чтобы оператор в цикле выполнился хотя бы один раз значение_2 должно быть равно либо больше чем значение_1. Переменная цикла принимает последовательные значения данного типа от значения_1 до значения_2.
Например
{для i=123…20 будет выполняться оператор А:=А+1}
For i:=1 To 20 Do A:=A+1
Имеется возможность организовать цикл по убывающим значениям параметра. Для этого используется зарезервированное слово DownTo. Синтаксис оператора For по убывающим значениям параметра:
For счетчик:=значение_1 DownTo значение_2 Do оператор
В этом случае переменная принимает последовательные убывающие значения данного типа от значения_1 до значения_2.
Например
{для i=1098…1 будет выполняться оператор А:=А+1}
For i:=10 DownTo 1 Do A:=A+1
Пример 8.Среди двузначных чисел найти те сумма квадратов цифр которых делится на 13.
program rab42
var abcdn:integer
begin
For a:=10 to 99 do
Begin
b:=a div 10
c:=a mod 10
d:=sqr(b)+sqr(c)
n:=d mod 13
If n=0 then writeln(‘Числа делятся на 13 и они =’a) end
readln
end.
Демонстрация решения:
Пример 9 . Составить программу проверяющую является ли число палиндромом (например число 12721 – палиндром).
program xxx
var s: string
im: integer
begin
m:=0
writeln (‘Введите число’)
readln (s)
for i:=1 to length(s) div 2 do begin
if s[i]=s[length(s)+1-i] then inc (m)
end
if m=length(s) div 2 then writeln (‘Данное число является полиндромом’)
else writeln (‘Это не полиндром’)
readln
end.
Демонстрация решения:
Пример 10. Дано натуральное n. Вычислить: y=2*4*…*2n.
program s
var n i p:integer
begin writeln(‘Введите натуральное n’)
readln(n)
p:=1 {значению произведения присваиваем 1}
for i:=1 to n do
if i mod 2 =0 then p:=p*i
writeln(‘p= ‘p)
end.
Демонстрация решения:
Пример 11. Найдите сумму целых положительных чисел из промежутка от А до В кратных 4 (значения переменных вводится с клавиатуры).
program example46
var ixmn: integer
begin
x:=0
writeln (‘введите интервал от n до m’)
readln (nm)
for i:= n to m do
begin
if (i mod 4= 0) then x:=x+iend
writeln
write (‘сумма:’x)
readln
end.
Демонстрация решения:
Пример 12 .Найдите делители числа и их количество.
program rab47
var aik:integer
begin
writeln (‘Введите натуральное число:’)
readln (a)
k:=0
For i:=1 to a do begin
if a mod i=0 then begin k:=k+1
writeln (‘Делитель числа=’i)
endend
writeln (‘Количество делителей числа = ‘k)
readln
end.
Демонстрация решения:
Пример 13. Найти все трехзначные числа которые при увеличении на 1 делятся на 2 при увеличении на 2 делятся на 3 при увеличении на 3 делятся на 4 а при увеличении на 4 делятся на 5.
program xxx
var ka: integer
begin
for a:=100 to 999 do
begin
if (a+1) mod 2 = 0 then begin
if (a+2) mod 3 = 0 then begin
if (a+3) mod 4 = 0 then begin
If (a+4) mod 5 = 0 then writeln (a)
end
end
end
end
readln
end.
Демонстрация решения:
Пример 14. Найти все двузначные числа которые при умножении на 2 заканчиваются на 8 а при умножении на 3 на 4.
program xxx
var ak: integer
begin
k:=0
for a:=10 to 99 do begin
if (a*2) mod 10 = 8 then begin writeln ( ‘число ‘ a ‘- при умножении на 2 заканчиваются на 8)
if (a*3) mod 10 = 4 then begin writeln ( ‘ число ‘ a ‘- при умножении на 3 на 4’) k:=k+1 end
end
end
writeln
if k=0 then writeln (‘чисел удовлятворяющих двум условиям нет)
end.
Демонстрация решения:
Пример 15. Напишите программу поиска четырехзначного числа которое при делении на 133 дает в остатке 125 а при делении на 134 дает в остатке 111.
program xxx
var a: longint
begin
for a:=1000 to 9999 do begin
if a mod 133=125 then begin
if a mod 134=111 then writeln (‘ это число = ‘a)
end
end
end.
Демонстрация решения:
Пример 16. Дана последовательность из 10 целых чисел. Определить количество отрицательных чисел.
program xxx
var ais: longint
begin
writeln (‘Введите 10 членов последовательности через пробел’)
read (a)
s:=0
for i:=1 to 9 do begin
if a<0 then inc(s)
read (a)
end
writeln (‘Количество отрицательных членов последовательности равно ‘s)
readln readln
end.
Демонстрация решения:
Пример 17 . Дано натуральное число n. Получить сумму всех его натуральных делителей.
program rab
var aIs:integer
begin
writeln (‘Введите натуральное число:’)
readln(a)
s:=0
For i:=1 to a do begin
if a mod i=0 then
writelnИ(‘Делитель числа=’i) s:=s+i
end
writeln (‘Сумма=’s)
readln
end.
Демонстрация решения:
Пример 18 . Дано натуральное число:
 найти первую и последнюю цифры числа
 верно ли что сумма цифр данного числа равна А (А вводится с клавиатуры).
var
naitrrs:integer
st:string
begin
Readln(n)
Readln(a)
Str (nst)
write (‘Первая цифра числа ‘n’ — ‘)
writeln (st[1])
write (‘Последняя цифра числа ‘n’ — ‘)
writeln (st[length(st)])
s:=0
for i:=1 to length(st) do
begin
val(st[i]trr)
s:=s+t
end
if a=n then writeln (a’=’ n ‘ — Верно’)
else writeln(a’=’ n ‘ -Неверно ‘)
end.
Демонстрация решения:
Сортировка обменом («пузырьковая» сортировка)
Принцип метода
Слева направо поочередно сравниваются два соседних элемента и если их взаиморасположение не соответствует заданному условию упорядоченности то они меняются местами. Далее берутся два следующих соседних элемента и так далее до конца массива.
После одного такого прохода на последней n-й позиции массива будет стоять максимальный элемент («всплыл» первый «пузырек»). Поскольку максимальный элемент уже стоит на своей последней позиции то второй проход обменов выполняется до n-1-го элемента. И так далее. Всего требуется n-1 проход.
Пример 19. Сортировка по возрастанию одномерного массива методом «пузырька»
Const N=30
Var i Temp: integer
A: array[1..N] of integer
Flag: boolean
Begin
Randomize
Writeln (‘Несортированный массив’)
For i:=1 To N Do begin A[i]:=random(50) Write(A[i]:3) end
Writeln
Flag:=true
While Flag Do
Begin
Flag:=false
For i:=1 To N-1 Do
Begin
If A[i]>A[i+1] Then
Begin
Temp:=A[i]
A[i]:=A[i+1]
A[i+1]:=Temp
Flag:=true
end{If}
end{For}
end{While}
Writeln(‘Отсортированный массив’)
For i:=1 To N Do Write(A[i]:3)
readln
End.
Демонстрация решения:
ГЛАВА 2. МАССИВЫ
Массив – это структура данных которая представляет собой однородную фиксированную по размеру и конфигурации совокупность элементов простой или составной структуры упорядоченных по номерам.
Массив определяется именем (идентификатором) и количеством размерностей (координат) необходимых для указания местонахождения требуемого элемента массива. Имя массива является единым для всех его элементов.
Синтаксис объявления одномерного массива:
var имя_массива: array [a..b] of тип_данных
где a b – номера (индексы) первого и последнего элементов массива соответственно. Тип данных элементов массива может быть как простым так и составным.
При обращении к элементу массива в квадратных скобках указывается его индекс.
Пример объявления:
const n=100
var A: array [1..n] of Real {Массив из 100 элементов типа Real}
или
const n=100
type T = array [1..n] of Real {Тип данных — массив}
var A: T {Массив из 100 элементов типа Real}
Пример работы:
A[1]:=5 {В массив А в ячейку с индексом 1 записано число 5.}
Type type_array=Array [1..5] Of Integer
{описывается тип одномерного массива с именем type array состоящий из пяти компонент типа Integer}
Var a: type_array {Переменная a описана как переменная типа type_array}
b: Array [1..5] Of Integer
c: Array [1..5] Of Integer
{Переменные b с описаны как одномерные массивы из пяти компонент типа Integer }
2.1. Одномерные массивы
Пример 20. Дана последовательность из 20 целых чисел. Определите количество четных чисел.
var
a:array[1..20] of integer
ik:integer
begin
k:=0
for i:=1 to 20 do
begin
readln(a[i])
if a[i] mod 2 =0 then k:=k+1
end
writeln(‘Кол-во четных чисел ‘k)
end.
Пример 21. Дан Массив А(10).Поменять его половины следующим образом: первый элемент с последним второй с предпоследним и так далее.
Program pl111
Const n=10{n — это число элементов массива}
Type myarray=Array[1..n] Of Integer
Var a: myarray
Ikl: Integer{i — это переменная для работы с элементами массива}
Begin
Writeln (‘введите ‘ n ‘ чисел’)
For i:=l To n Do {ввод массива с клавиатуры}
Readln (a[i])
End
K:= (n div 2)-1
For i:=1 To k Do {меняем местами элементы массива}
L:= a[I]
a[i]:= a[ n+1-I ])
a[n+1-I]:=L
End
For i:=l To n Do {вывод массива}
Writeln (a[i])
End
Readln End.
2.2. Двумерные массивы
Синтаксис объявления двумерного массива:
var имя_массива: array [a..b c..d] of тип_данных_массива
где a b – номера первой и последней строк массива соответственно
с d – номера первой и последней ячеек строки массива соответственно.
Тип данных также может быть как простым так и составным.
d: Array [1..3 1..3] Of Real {Переменная d описана как двухмерный массив из девяти компонент типа Real }
Пример объявления и использования:
Const n=5 m=5
{Объявление массива из 10 строк в каждой из которых 5 ячеек}
Var A: array [1..m 1..n] of real
i j : integer {Переменные цикла}
Begin
{Инициализация значений массива}
For j:=1 to n do {Проход массива по столбцам}
For i:=1 to m do begin {Проход массива по строкам}
Write (‘Введите A[’ i ’’ j ’]=’)
ReadLn(A[i j]) {Заполнение массива}
end
{Вывод массива на экран}
Writeln(‘Массив А’)
For j:=1 to n do begin
For i:=1 to m do Write(A[i j])
WriteLn
end
End.
Пример 22. Написать программу которая вводит квадратную матрицу производит ее транспонирование (обмен элементов строки на элементы соответствующего ей столбца) и выводит на экран полученную матрицу.
program pr
var a:array [1..1001..100] of integer
ijn:integer
c:integer
begin write (‘введите размер матрицы n=’)
readln (n)
for i:=1 to n do
for j:=1 to n do
begin write (‘a[‘i»j’]=’)
readln (a[ji])
end
writeln (‘вы ввели такую матрицу:’)
for i:=1 to n do
begin for j:=1 to n do
write (a[ij]:3)
writeln
end
for i:=1 to n do
for j:=1 to n do
begin c:=a[ij]
a[ij]:=a[ji]
a[ji]:=c
end
writeln (‘получилась матрица:’)
for i:=1 to n do
begin for j:=1 to n do
write(a[ij]:3)
writeln
end
end.
Демонстрация решения:
Пример 23. Сформировать квадратную матрицу вида:
n 0 0 0…0 0 0
0 n-1 0 0…0 0 0
0 0 n-2 0…0 0 0
. . . . . . . .
0 0 0 0…0 2 0
0 0 0 0…0 0 1
Program pr
var a:array [1..301..30] of integer
ijn:integer
begin writeln (‘введите размер матрицы:’)
write (‘количество строк=’) readln(n)
for i:=1 to n do
for j:=1 to n do
if i=j then a[ij]:=n-j+1
else a[ij]:=0
for i:=1 to n do
begin for j:=1 to n do write(a[ij]:3)
writeln
end
end.
Демонстрация решения:
ЗАКЛЮЧЕНИЕ
СПИСОК ЛИТЕРАТУРЫ
21. Рапаков Г.Г. Программирование на языке Pascal: учебное пособие – СПб.: БХВ-Петербург 2004. – 480 стр.
22. Самойленко В.П. Опалева Э.А. Языки программирования и методы трансляции: Учебное пособие для вузов. БХВ-Петербург 2005. — 480 стр.
23. Шкаев А.В. Руководство по работе на персональном компьютере. Справочник. М.: Радио и связь 1994. — 126 стр.
24. Перминов О. Н. Язык программирования Паскаль : Справочник. — М.: «Радио и связь» 1989. — 128 стр.
25. Фаронов В.В. TurboPascal: учебное пособие / В.В. Фаронов. – М.: Изд.: ОМД Групп 2007. – 368 стр.

Advertisement
Узнайте стоимость Online
  • Тип работы
  • Часть диплома
  • Дипломная работа
  • Курсовая работа
  • Контрольная работа
  • Решение задач
  • Реферат
  • Научно - исследовательская работа
  • Отчет по практике
  • Ответы на билеты
  • Тест/экзамен online
  • Монография
  • Эссе
  • Доклад
  • Компьютерный набор текста
  • Компьютерный чертеж
  • Рецензия
  • Перевод
  • Репетитор
  • Бизнес-план
  • Конспекты
  • Проверка качества
  • Единоразовая консультация
  • Аспирантский реферат
  • Магистерская работа
  • Научная статья
  • Научный труд
  • Техническая редакция текста
  • Чертеж от руки
  • Диаграммы, таблицы
  • Презентация к защите
  • Тезисный план
  • Речь к диплому
  • Доработка заказа клиента
  • Отзыв на диплом
  • Публикация статьи в ВАК
  • Публикация статьи в Scopus
  • Дипломная работа MBA
  • Повышение оригинальности
  • Копирайтинг
  • Другое
Прикрепить файл
Рассчитать стоимость